using namespace std;
#include<iostream>
#include<signal.h>
#include<unistd.h>
void showSet(sigset_t *set)
{
    for(int i=0;i<32;i++)
    {
        if(sigismember(set,i))
        {
            cout<<"1";
        }
        else
        {
            cout<<"0";
        }
    }
    cout<<endl;
}
void handler(int sig)
{
    cout<<"get sig:"<<sig<<endl;
    sigset_t pending_set;
    sigemptyset(&pending_set);
    sigpending(&pending_set);
    cout<<"pending:";
    showSet(&pending_set);
    sigset_t temp;
    sigemptyset(&temp);
    sigset_t block_set;
    sigemptyset(&block_set);
    sigprocmask(SIG_BLOCK,&temp,&block_set);
    cout<<"block:";
    showSet(&block_set);
    exit(0);
}
int main()
{
    signal(2,handler);
    while (1);
    return 0;
    
}